package src.main.java.modules.container;

import java.rmi.RemoteException;

import src.main.java.entity.EntregaTO;
import ws.WsPortTypeProxy;
import ws_pkg.PrazoFrete;
import ws_pkg.Produto;

public class LogisticaCaller {
	
//	private static final String BASE_URL = "http://staff01.lab.ic.unicamp.br/grupo9/webservice/ws.php";
	private static final String BASE_URL = "http://localhost:8084/grupo9/webservice/ws.php";
	
	private static int cep_remetente = 13083720;
	
	public static EntregaTO calcularTodosFretes(String cep, Produto[] produtos){
		EntregaTO entrega = new EntregaTO();
	
		entrega.setCep(cep);
		entrega.setSedex(calculaFreteEPrazo(cep, 1, produtos));
		entrega.setEsedex(calculaFreteEPrazo(cep, 2, produtos));
		entrega.setPac(calculaFreteEPrazo(cep, 3, produtos));
		entrega.setFedex(calculaFreteEPrazo(cep, 4, produtos));
		
		return entrega;
	}

	public static PrazoFrete calculaFreteEPrazo(String cep, int id_transportadora, Produto[] produtos){
		int cep_destinatario = Integer.parseInt(cep);
		PrazoFrete retorno = new PrazoFrete();
		WsPortTypeProxy proxy = new WsPortTypeProxy(BASE_URL);
		try {
			retorno = proxy.calculaFreteEPrazo(cep_remetente, cep_destinatario, id_transportadora, produtos);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		return retorno;
	}

	public static int cadastraEntrega(int id_portal, int cep_remetente, int cep_destinatario, int id_transportadora, Produto[] produtos){
		int retorno = 0;
		
		WsPortTypeProxy proxy = new WsPortTypeProxy(BASE_URL);
		try {
			retorno = proxy.cadastrarEntrega(id_portal, cep_remetente, cep_destinatario, id_transportadora, produtos);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		
		return retorno;
	}
	
	public static String statusEntrega(int id_entrega){
		String retorno = "";
		WsPortTypeProxy proxy = new WsPortTypeProxy(BASE_URL);
		try {
			retorno = proxy.consultarEntrega(id_entrega);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		return retorno;
	}
}
